package com.circus.trace.vo;

import org.nutz.json.JsonShape;
import org.nutz.json.JsonShape.Type;
import org.nutz.lang.Strings;

@JsonShape(value=Type.OBJECTWITHNAME,nameKey="code")
public enum Flag {
	UNSELECTED("请选择原产国",""),
	ASCENSION("阿森松岛", "🇦🇨"),
	ANDORRA("安道尔", "🇦🇩"), 
	THE_UNITED_ARAB_EMIRATES("阿联酋","🇦🇪"),
	AFGHANISTAN("阿富汗","🇦🇫"),
	ANTIGUA_AND_BARBUDA("安提瓜和巴布达","🇦🇬"),
	ANGUILLA("安圭拉","🇦🇮"),
	ALBANIA("阿尔巴尼亚","🇦🇱"),
	ARMENIA("亚美尼亚","🇦🇲"),
	ANGOLA("安哥拉","🇦🇴"),
	ANTARCTICA("南极洲","🇦🇶"),
	ARGENTINA("阿根廷","🇦🇷"),
	AMERICAN_SAMOA("美属萨摩亚群岛","🇦🇸"),
	AUSTRIA("奥地利","🇦🇹"),
	AUSTRALIA("澳大利亚","🇦🇺"),
	ARUBA("阿鲁巴","🇦🇼"),
	ORAN_ISLANDS("奥兰群岛","🇦🇽"),
	AZERBAIJAN("阿塞拜疆","🇦🇿"),
	BOSNIA_AND_HERZEGOVINA("波黑","🇧🇦"),
	BADOS("巴多斯","🇧🇧"),
	THE_PEOPLE_S_REPUBLIC_OF_BANGLADESH("孟加拉国","🇧🇩"),
	BELGIUM("比利时","🇧🇪"),
	BURKINA_FASO("布基纳法索","🇧🇫"),
	BULGARIA("保加利亚","🇧🇬"),
	BAHRAIN("巴林","🇧🇭"),
	BURUNDI("布隆迪","🇧🇮"),
	BENIN("贝林","🇧🇯"),
	SAN_BARTHELEMY("圣巴泰勒米","🇧🇱"),
	BERMUDA("百慕大","🇧🇲"),
	BRUNEI("文莱","🇧🇳"),
	BOLIVIA("玻利维亚","🇧🇴"),
	DUTCH_CARIBBEAN("荷兰加勒比","🇧🇶"),
	BRAZIL("巴西","🇧🇷"),
	BAHAMAS("巴哈马","🇧🇸"),
	BHUTAN("不丹","🇧🇹"),
	BOUVET_ISLAND("布维岛","🇧🇻"),
	BOTSWANA("博茨瓦纳","🇧🇼"),
	BELARUS("白俄罗斯","🇧🇾"),
	BELIZE("伯利兹","🇧🇿"),
	CANADA("加拿大","🇨🇦"),
	COC("科科斯群岛","🇨🇨"),
	DEMOCRATIC_REPUBLIC_OF_THE_CONGO("刚果(金)","🇨🇩"),
	CONGO("刚果(布)","🇨🇬"),
	CENTRAL_AFRICAN_REPUBLIC("中非共和国","🇨🇫"),
	SWITZERLAND("瑞士","🇨🇭"),
	COTE_D_IVOIRE("科特迪瓦","🇨🇮"),
	COOK_ISLANDS("库克群岛","🇨🇰"),
	CHILE("智利","🇨🇱"),
	CAMEROON("喀麦隆","🇨🇲"),
	CHINA("中国","🇨🇳"),
	COLUMBIA("哥伦比亚","🇨🇴"),
	CLIPPERTON_ISLAND("克利伯顿岛","🇨🇵"),
	COSTARICA("哥斯达黎加","🇨🇷"),
	CUBA("古巴","🇨🇺"),
	CAPE_VERDE("佛得角","🇨🇻"),
	CURACAO("库拉索","🇨🇼"),
	THE_CHRISTMAS_ISLAND("圣诞岛","🇨🇽"),
	CYPRUS("塞浦路斯","🇨🇾"),
	CZECH_REPUBLIC("捷克共和国","🇨🇿"),
	GERMANY("德国","🇩🇪"),
	DIEGO_GARCIA("迪戈加西亚","🇩🇬"),
	DJIBOUTI("吉布提","🇩🇯"),
	THE_DANISH("丹麦","🇩🇰"),
	THE_DOMINICAN("多米尼加","🇩🇲"),
	DOMINICAN_REPUBLIC("多明尼加共和国","🇩🇴"),
	ALGERIA("阿尔及利亚","🇩🇿"),
	CEUTA_AND_MELILLA("休达和梅利利亚","🇪🇦"),
	ECUADOR("厄瓜多尔","🇪🇨"),
	ESTONIA("爱沙尼亚","🇪🇪"),
	EGYPT("埃及","🇪🇬"),
	THE_WESTERN_SAHARA("西撒哈拉","🇪🇭"),
	ERITREA("厄立特里亚","🇪🇷"),
	SPAIN("西班牙","🇪🇸"),
	ETHIOPIA("埃塞俄比亚","🇪🇹"),
	THE_EUROPEAN_UNION("欧盟","🇪🇺"),
	FINLAND("芬兰","🇫🇮"),
	FIJI("斐济","🇫🇯"),
	FALKLAND_ISLANDS("福克兰群岛","🇫🇰"),
	MICRONESIA("密克罗尼西亚","🇫🇲"),
	THE_FAROE_ISLANDS("法罗群岛","🇫🇴"),
	THE_FRENCH("法国","🇫🇷"),
	GABON("加蓬","🇬🇦"),
	THE_BRITISH("英国","🇬🇧"),
	GRENADA("格林纳达","🇬🇩"),
	GEORGIA("格鲁吉亚","🇬🇪"),
	FRENCH_GUIANA("法属圭亚那","🇬🇫"),
	GUERNSEY("根西岛","🇬🇬"),
	GHANA("加纳","🇬🇭"),
	GIBRALTAR("直布罗陀","🇬🇮"),
	GREENLAND("格陵兰","🇬🇱"),
	THE_GAMBIA("冈比亚","🇬🇲"),
	GUINEA("几内亚","🇬🇳"),
	GUADELOUPE("瓜德罗普岛","🇬🇵"),
	EQUATORIAL_GUINEA("赤道几内亚","🇬🇶"),
	THE_GREEK("希腊","🇬🇷"),
	SOUTH_GEORGIA_AND_SOUTH_SANDWICH_ISLANDS("南乔治亚岛和南桑威奇群岛","🇬🇸"),
	GUATEMALA("危地马拉","🇬🇹"),
	GUAM("关岛","🇬🇺"),
	GUINEA_BISSAU("几内亚比绍","🇬🇼"),
	GUYANA("圭亚那","🇬🇾"),
	HONG_KONG("香港","🇭🇰"),
	HURD_AND_MACDONALD_ISLANDS("赫德与麦克唐纳群岛","🇭🇲"),
	HONDURAS("洪都拉斯","🇭🇳"),
	CROATIA("克罗地亚","🇭🇷"),
	IN_HAITI("海地","🇭🇹"),
	IN_HUNGARY("匈牙利","🇭🇺"),
	CANARY_ISLANDS("加那利群岛","🇮🇨"),
	INDONESIA("印尼","🇮🇩"),
	THE_IRISH("爱尔兰","🇮🇪"),
	FOR_ISRAEL("为以色列","🇮🇱"),
	ISLE_OF_MAN("曼岛","🇮🇲"),
	INDIA("印度","🇮🇳"),
	BRITISH_INDIAN_OCEAN_TERRITORY("英属印度洋领地","🇮🇴"),
	HAWAII("夏威夷","🏖"),
	IRAQ("伊拉克","🇮🇶"),
	IRAN("伊朗","🇮🇷"),
	ICELAND("冰岛","🇮🇸"),
	ITALY("意大利","🇮🇹"),
	JERSEY("泽西","🇯🇪"),
	JAMAICA("牙买加","🇯🇲"),
	JORDAN("约旦","🇯🇴"),
	JAPAN("日本","🇯🇵"),
	KENYA("肯尼亚","🇰🇪"),
	KYRGYZSTAN("吉尔吉斯斯坦","🇰🇬"),
	IN_CAMBODIA("柬埔寨","🇰🇭"),
	KIRIBATI("基里巴斯","🇰🇮"),
	THE_COMOROS("科摩罗","🇰🇲"),
	SAINT_KITTS_AND_NEVIS("圣基茨和尼维斯","🇰🇳"),
	NORTH_KOREA("朝鲜","🇰🇵"),
	KOREAN("韩国","🇰🇷"),
	KUWAIT("科威特","🇰🇼"),
	THE_CAYMAN_ISLANDS("开曼群岛","🇰🇾"),
	KAZAKSTAN("哈萨克斯坦","🇰🇿"),
	LAOS("老挝","🇱🇦"),
	LEBANON("黎巴嫩","🇱🇧"),
	ST_LUCIA("圣卢西亚","🇱🇨"),
	LIECHTENSTEIN("列支敦士登","🇱🇮"),
	SRI_LANKA("斯里兰卡","🇱🇰"),
	LIBERIA("利比里亚","🇱🇷"),
	LESOTHO("莱索托","🇱🇸"),
	LITHUANIA("立陶宛","🇱🇹"),
	LUXEMBOURG("卢森堡","🇱🇺"),
	LATVIA("拉脱维亚","🇱🇻"),
	LIBYA("利比亚","🇱🇾"),
	MOROCCO("摩洛哥","🇲🇦"),
	MONACO("摩纳哥","🇲🇨"),
	MOLDOVA("摩尔多瓦","🇲🇩"),
	MONTENEGRO("黑山","🇲🇪"),
	ST_MARTIN_S("圣马丁","🇲🇫"),
	MADAGASCAR("马达加斯加","🇲🇬"),
	MARSHALL_ISLANDS("马绍尔群岛","🇲🇭"),
	MACEDONIA("马其顿","🇲🇰"),
	MALI("马里","🇲🇱"),
	MYANMAR("缅甸","🇲🇲"),
	MONGOLIA("蒙古","🇲🇳"),
	MACAU("澳门","🇲🇴"),
	NORTHERN_MARIANA_ISLANDS("北马里亚纳群岛","🇲🇵"),
	MARTINIQUE("马提尼克岛","🇲🇶"),
	MAURITANIA("毛里塔尼亚","🇲🇷"),
	MONTSERRAT("蒙特塞拉特","🇲🇸"),
	MALTA("马耳他","🇲🇹"),
	MAURITIUS("毛里求斯","🇲🇺"),
	THE_MALDIVES("马尔代夫","🇲🇻"),
	MALAWI("马拉维","🇲🇼"),
	MEXICO("墨西哥","🇲🇽"),
	MALAYSIA("马来西亚","🇲🇾"),
	MOZAMBIQUE("莫桑比克","🇲🇿"),
	NAMIBIA("纳米比亚","🇳🇦"),
	NEW_CALEDONIA("新喀里多尼亚","🇳🇨"),
	NIGER("尼日尔","🇳🇪"),
	NORFOLK_ISLAND("诺福克岛","🇳🇫"),
	NIGERIA("尼日利亚","🇳🇬"),
	NICARAGUA("尼加拉瓜","🇳🇮"),
	IN_THE_NETHERLANDS("荷兰","🇳🇱"),
	THE_NORWEGIAN("挪威","🇳🇴"),
	NEPAL("尼泊尔","🇳🇵"),
	NAURU("瑙鲁","🇳🇷"),
	NIUE("纽埃","🇳🇺"),
	NEW_ZEALAND("新西兰","🇳🇿"),
	OMAN("阿曼","🇴🇲"),
	PANAMA("巴拿马","🇵🇦"),
	PERU("秘鲁","🇵🇪"),
	FRENCH_POLYNESIA("法属波利尼西亚","🇵🇫"),
	PAPUA_NEW_GUINEA("巴布亚新几内亚","🇵🇬"),
	THE_PHILIPPINES("菲律宾","🇵🇭"),
	PAKISTAN("巴基斯坦","🇵🇰"),
	POLAND("波兰","🇵🇱"),
	SAINT_PIERRE_AND_MIQUELON("圣皮埃尔和密克隆群岛","🇵🇲"),
	PITCAIRN_ISLANDS("皮特凯恩群岛","🇵🇳"),
	PUERTO_RICO("波多黎各","🇵🇷"),
	PALESTINIAN_TERRITORY("巴勒斯坦领土","🇵🇸"),
	PORTUGAL("葡萄牙","🇵🇹"),
	PALAU("帕劳","🇵🇼"),
	PARAGUAY("巴拉圭","🇵🇾"),
	QATAR("卡塔尔","🇶🇦"),
	REUNION("团圆","🇷🇪"),
	ROMANIA("罗马尼亚","🇷🇴"),
	SERBIA("塞尔维亚","🇷🇸"),
	RUSSIA("俄罗斯","🇷🇺"),
	RWANDA("卢旺达","🇷🇼"),
	SAUDI_ARABIA("沙特阿拉伯","🇸🇦"),
	SOLOMON_ISLANDS("所罗门群岛","🇸🇧"),
	THE_SEYCHELLES("塞舌尔","🇸🇨"),
	SUDAN("苏丹","🇸🇩"),
	THE_SWEDISH("瑞典","🇸🇪"),
	SINGAPORE("新加坡","🇸🇬"),
	ST_HELENA("圣赫勒拿","🇸🇭"),
	SLOVENIA("斯洛文尼亚","🇸🇮"),
	SVALBARD_AND_JAN_MAYEN("斯瓦尔巴群岛和扬马延","🇸🇯"),
	SLOVAKIA("斯洛伐克","🇸🇰"),
	SIERRA_LEONE("塞拉利昂","🇸🇱"),
	SAN_MARINO("圣马力诺","🇸🇲"),
	SENEGAL("塞内加尔","🇸🇳"),
	SOMALIA("索马里","🇸🇴"),
	SURINAME("苏里南","🇸🇷"),
	SOUTH_SUDAN("南苏丹","🇸🇸"),
	SAO_TOME_AND_PRINCIPE("圣多美和普林西比","🇸🇹"),
	EL_SALVADOR("萨尔瓦多","🇸🇻"),
	ST_MARTIN("圣马丁岛","🇸🇽"),
	SYRIA("叙利亚","🇸🇾"),
	SWAZILAND("斯威士兰","🇸🇿"),
	TANZANIA("坦桑尼亚","🇹🇿"),
	UGANDA("乌干达","🇺🇬"),
	VIETNAM("越南","🇻🇳"),
	YUNNAN("云南","☁️")
	;
	
	String name;

	String icon;
	
	Flag(String name) {
		this.name = name;
		this.icon = from(name).getIcon();
	}

	
	public static Flag from(String name) {
		for (Flag f : values()) {
			if (Strings.equals(f.getName(), name)) {
				return f;
			}
		}
		return null;
	}

	private Flag(String name, String icon) {
		this.name = name;
		this.icon = icon;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getIcon() {
		return icon;
	}

	public void setIcon(String icon) {
		this.icon = icon;
	}

}
